package com.denlaku.longan.service;

import com.denlaku.longan.qo.DashboardQuery;
import com.denlaku.longan.qo.Query;
import com.denlaku.longan.vo.Dashboard;

import java.util.List;

/**
 * @author tianx
 */
public interface DashboardService {
	/**
	 * 新增仪表板
	 *
	 * @param dashboard 仪表板
	 */
	void add(Dashboard dashboard);

	/**
	 * 更新仪表板
	 *
	 * @param dashboard 仪表板
	 */
	void update(Dashboard dashboard);

	/**
	 * 更新仪表板
	 *
	 * @param dashboard 仪表板
	 */
	void config(Dashboard dashboard);

	/**
	 * 删除仪表板
	 *
	 * @param query 查询参数
	 */
	void delete(Query query);

	/**
	 * 获取仪表板
	 *
	 * @param query 查询参数
	 * @return 仪表板
	 */
	Dashboard get(Query query);

	/**
	 * 获取仪表板
	 *
	 * @param query 查询参数
	 * @return 仪表板
	 */
	Dashboard getBase(Query query);

	/**
	 * 查询仪表板列表
	 *
	 * @param dashboard 查询参数
	 * @return 仪表板列表
	 */
	List<Dashboard> list(DashboardQuery dashboard);

	/**
	 * 清理tag
	 *
	 * @param tenantId 租户ID
	 * @param tagId 标签ID
	 */
	void clearTag(Long tenantId, Long tagId);
}
